# 数据库基础知识和SQLite3连接示例

"""
数据库基础知识：

1. 数据库的概念：
   - 数据库是按照特定格式存储的数据集合
   - 主要分为关系型数据库和非关系型数据库

2. 常见的关系型数据库：
   - MySQL：开源的、使用最广泛的数据库之一
   - PostgreSQL：功能强大、支持复杂查询
   - Oracle：商业数据库、适合大型企业
   - SQLite：轻量级、文件型数据库
   - SQL Server：微软开发的商业数据库

3. 常见的非关系型数据库：
   - MongoDB：文档型数据库
   - Redis：键值对数据库
   - Cassandra：列式数据库
   - Neo4j：图形数据库

4. 关系型数据库的特点：
   - 使用表格存储数据
   - 表与表之间可以建立关联关系
   - 使用SQL语言操作数据
   - 支持ACID事务(原子性、一致性、隔离性、持久性)
   - 数据结构严格

5. 数据库基本概念：
   - 数据库（Database）：数据的集合
   - 表（Table）：类似Excel表格，存储特定类型的数据
   - 行（Row）：表中的一条记录
   - 列（Column）：表中的一个字段

6. SQLite3特点：
   - 轻量级、零配置、无需服务器
   - 单文件存储整个数据库
   - Python标准库自带支持
   - 适合小型应用和移动应用
   - 支持标准的SQL语法
"""

import sqlite3


def demonstrate_sqlite_connection():
    try:
        # 1. 创建/连接到SQLite数据库
        # 如果数据库不存在，会自动创建一个新的数据库文件
        print("\n1. 创建并连接到SQLite数据库...")
        conn = sqlite3.connect("example.db")
        print("数据库连接成功！")

        # 2. 创建游标对象
        # 游标用于执行SQL命令和获取查询结果
        print("\n2. 创建数据库游标...")
        cursor = conn.cursor()
        print("游标创建成功！")

        # 3. 关闭游标和数据库连接
        print("\n3. 关闭数据库连接...")
        cursor.close()
        conn.close()
        print("数据库连接已安全关闭！")

    except sqlite3.Error as e:
        print(f"\n发生错误：{e}")

    finally:
        # 确保在发生异常时也能关闭连接
        if "conn" in locals():
            conn.close()
            print("数据库连接已在异常处理中关闭！")


if __name__ == "__main__":
    print("SQLite3数据库连接示例\n" + "=" * 50)
    demonstrate_sqlite_connection()
